The General Packet Radio Service (GPRS) standard provides a compatibility standard for cellular mobile telecommunications systems. The GPRS standard ensures that a mobile station (MS) operating in a GPRS system can obtain communication services when operating in a system manufactured according to the standard. To ensure compatibility, radio system parameters and data transfer procedures are specified by the standard, including protocols governing digital control messages and bearer traffic that are exchanged between elements of an infrastructure.
FIG. 1 is a block diagram illustration of a typical GPRS communication system 100 of the prior art. Communication system 100 includes an MS 102 in communication with a base station subsystem (BSS) 106, and specifically with a base transceiver station (BTS) 108 included in the BSS, via an air interface 104. Typically, data is transferred between MS 102 and BTS 108 over air interface 104 pursuant to a Radio Link Control (RLC). BSS 106 further includes a base station controller (BSC) 110 coupled to BTS 108 and a Packet Control Unit (PCU) 112 coupled to the BSC. Communication system 100 further includes a Serving GPRS Support Node (SGSN) 116 that is coupled to BSS 106, specifically PCU 112, via a Gb interface 114 that includes a bearer path between the BSS and the SGSN and a signaling interface. BSS 106 and SGSN 116 are collectively referred to as a system network or infrastructure.
When MS 102 engages in a communication session with an external network 120, data is conveyed to MS 102 via SGSN 116, PCU 112, BSC 110, and BTS 108. The data is typically included in data packets that are formatted pursuant to an Internet Protocol (IP) standard. SGSN 116 typically queues the received data in a buffer included in the SGSN and associated with MS 102 before conveying the data to MS 102 via BSS 106. In turn, BSS 106, and in particular PCU 112, typically queues the data received from SGSN 116 in a buffer included in the PCU and associated with MS 102 before conveying the data to the MS. SGSN 116 monitors the number of bytes received by the SGSN from external network 120 and/or sent by the SGSN to PCU 112 and keeps a count of the number of sent and/or received bytes. SGSN 116 then conveys a count of the number of bytes sent and/or received by the SGSN to a Charging Gateway (CGW) 118 in an accounting message. A billing service then retrieves accounting records that include the byte count from CGW 118 and bills a customer associated with MS 102 a fee based on the count of the bytes count.
In order to optimize the performance of communication system 100 and to correctly bill a customer of the communication system, the flow of data in the system must be controlled. A reduced rate of data transfer to MS 102 over the air interface 104 can result in an overflow of data to the buffer at PCU 112. In turn, an overflow of the PCU buffer can result in data packets being dropped by the PCU, for which dropped data packets the customer is billed. An increased rate of data transfer to MS 102 over the air interface 104 can result in an underflow of data to the PCU buffer, which can result in a starvation of the buffer and an inefficient utilization of the air interface 104.
In addition, as MS 102 moves through communication system 100, the MS may be handed off to a second BSS and a second PCU. Upon handing off of MS 102, PCU 112 is instructed by SGSN 116 to delete all data stored in the buffer of the PCU associated with MS 102. In the current implementation of a GPRS system such as system 100, dropped packets are either recovered by running the Logical Link Control (LLC) protocol in the “acknowledged” mode, by relying on end-to-end protocols (such as TCP), or are not recovered at all (for example, in voice-over-IP or other real-time critical applications). Relying on these forms of dropped packet recovery increases network delay, thus reducing network-level throughput. Furthermore, the byte count conveyed by SGSN 116 to CGW 118 does not reflect any data packets dropped by the infrastructure after being received by SGSN 116 from external network 120. As a result, data packets discarded by PCU 112 are not reflected in the billing of the customer associated with MS 102.
In order to regulate buffer overflows and underflows, the GPRS standards provide for a flow control message that is sent by a downstream network element, such as PCU 112, to an upstream network element, such as SGSN 116, to control the downstream flow of data. The standards specify that the flow control message specify two parameters, a data transfer rate (r) from the upstream element to the downstream element and a maximum burst size (Bmax). The standards further specify that the flow control messages have a minimum spacing between messages. However, the standards do not indicate how to determine r, Bmax, or the spacing.
In order to implement the flow control message, flow control schemes have been developed to determine the message's parameters. Typically, the flow control schemes are ‘leaky bucket’ schemes that involve a computation of both of the parameters r and Bmax. However, none of the schemes ensure prevention of PCU buffer overflow or underflow. Furthermore, such flow control schemes require a large buffer at the PCU, which consumes excessive memory space and may result in a discard of an excessive amount data, and correspondingly excessive customer over-billing, as a result of cell reselection. In addition, such flow control schemes typically rely on estimated data transfer rates over air interface 104, the calculation of which is very complex and processing load intensive and which algorithms still do not insure against buffer overflows and underflows.
Therefore, a need exists for a method and apparatus that controls a flow of data from an SGSN to a PCU without causing an overflow or an underflow of the per_MS buffer in the PCU, that does not rely on estimated data transfer rates over an air interface, and that does not result in a discard of an excessive amount of data when a mobile station switches is handed over from the PCU to a different PCU.